import { CSSProperties, VNodeChild } from 'vue';
import { createTypes, VueTypeValidableDef, VueTypesInterface } from 'vue-types';

export type VueNode = VNodeChild | JSX.Element;

type PropTypes = VueTypesInterface & {
	readonly style: VueTypeValidableDef<CSSProperties>;
	readonly VNodeChild: VueTypeValidableDef<VueNode>;
	// readonly trueBool: VueTypeValidableDef<boolean>;
};

const propTypes = createTypes({
	func: undefined,
	bool: undefined,
	string: undefined,
	number: undefined,
	object: undefined,
	integer: undefined,
}) as PropTypes;

propTypes.extend([
	{
		name: 'style',
		getter: true,
		type: [String, Object],
		default: undefined,
	},
	{
		name: 'VNodeChild',
		getter: true,
		type: undefined,
	},
]);
export { propTypes };
